基于启发式和机器学习的代码坏味检测方法已被证明具有一定的局限性,且现有的检测方法大多集中在较为常见的代码坏味上。针对这些问题,提出了一种深度学习方法来检测过紧的耦合、分散的耦合和散弹式修改这三种与耦合度相关检测较为少见的代码坏味。首先,提取三种代码坏味需要的度量并对得到的数据进行处理;之后,构建卷积神经网络(CNN)与注意力(Attention)机制相结合的深度学习模型,引入的注意力机制可以对输入的度量特征进行权重的分配。从21个开源项目中提取数据集,在10个开源项目中对检测方法进行了验证,并与CNN模型进行对比。实验结果表明:过紧的耦合和分散的耦合在所提模型中取得了更好的结果,相应代码坏味的查准率分别达到了93.61%和99.76%;而散弹式修改在CNN模型中有更好的结果,相应代码坏味查准率达到了98.59%。
针对使用并行库JOMP的程序在性能方面存在的不足,提出一个可以分离并行逻辑和功能逻辑的并行框架。该框架对程序中需要并行处理的部分进行标记,采用面向方面和运行时反射技术实现被标记部分的处理,其中面向方面技术用于实现并行逻辑的分离和编织,运行时反射技术用于获取运行时被标记部分的相关信息,以并行库(waxberry)的方式实现了该并行框架。使用基准测试程序JGF套件中的三个测试程序对并行库进行了测试,实验结果表明,应用该并行库的程序可以获得较好的性能。